{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this notebook we will see how to learn mutiple BNs from multiple datasets where we\n",
    "will put a bias on the BNs to be similar. First we need a few datasets. The easiest way to this is to grab a dataset and then sample from it:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using license file /home/james/gurobi.lic\n",
      "Academic license - for non-commercial use only\n",
      "Changed value of parameter PreCrush to 1\n",
      "   Prev: 0  Min: 0  Max: 1  Default: 0\n",
      "Changed value of parameter CutPasses to 100000\n",
      "   Prev: -1  Min: -1  Max: 2000000000  Default: -1\n",
      "Changed value of parameter GomoryPasses to 100000\n",
      "   Prev: -1  Min: -1  Max: 2000000000  Default: -1\n",
      "Changed value of parameter MIPFocus to 2\n",
      "   Prev: 0  Min: 0  Max: 3  Default: 0\n",
      "Changed value of parameter ZeroHalfCuts to 2\n",
      "   Prev: -1  Min: -1  Max: 2  Default: -1\n",
      "Changed value of parameter MIPGap to 0.0\n",
      "   Prev: 0.0001  Min: 0.0  Max: inf  Default: 0.0001\n",
      "Changed value of parameter MIPGapAbs to 0.0\n",
      "   Prev: 1e-10  Min: 0.0  Max: inf  Default: 1e-10\n"
     ]
    }
   ],
   "source": [
    "from pygobnilp.gobnilp import Gobnilp\n",
    "m = Gobnilp()\n",
    "m.learn('discrete.dat',end='data') #stop the process as soon as we have the data\n",
    "datas = []\n",
    "import numpy as np\n",
    "np.random.seed(12) #so we get the same results each time\n",
    "for i in range(4):\n",
    "    idx = np.random.randint(0, len(m.rawdata), size=1000) # sampling with replacement\n",
    "    datas.append(m.rawdata[idx,:])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "OK, so now we have 4 numpy arrays of data each with 1000 rows and 6 columns. Now we can learn a BN for each of these data sets."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Changed value of parameter PreCrush to 1\n",
      "   Prev: 0  Min: 0  Max: 1  Default: 0\n",
      "Changed value of parameter CutPasses to 100000\n",
      "   Prev: -1  Min: -1  Max: 2000000000  Default: -1\n",
      "Changed value of parameter GomoryPasses to 100000\n",
      "   Prev: -1  Min: -1  Max: 2000000000  Default: -1\n",
      "Changed value of parameter MIPFocus to 2\n",
      "   Prev: 0  Min: 0  Max: 3  Default: 0\n",
      "Changed value of parameter ZeroHalfCuts to 2\n",
      "   Prev: -1  Min: -1  Max: 2  Default: -1\n",
      "Changed value of parameter MIPGap to 0.0\n",
      "   Prev: 0.0001  Min: 0.0  Max: inf  Default: 0.0001\n",
      "Changed value of parameter MIPGapAbs to 0.0\n",
      "   Prev: 1e-10  Min: 0.0  Max: inf  Default: 1e-10\n",
      "**********\n",
      "BN has score -4936.315210426102\n",
      "**********\n",
      "X_0_0<-X_0_1 -895.5326411739161\n",
      "X_0_1<-X_0_4 -812.7914317219338\n",
      "X_0_4<-X_0_5 -1018.1456089120893\n",
      "X_0_2<- -719.4330747791437\n",
      "X_0_3<-X_0_0,X_0_2 -793.9233922658714\n",
      "X_0_5<- -696.4890615731474\n",
      "**********\n",
      "bnlearn modelstring = \n",
      "[X_0_0|X_0_1][X_0_1|X_0_4][X_0_4|X_0_5][X_0_2][X_0_3|X_0_0:X_0_2][X_0_5]\n",
      "**********\n",
      "CPDAG:\n",
      "Vertices: X_0_0,X_0_1,X_0_4,X_0_2,X_0_3,X_0_5\n",
      "X_0_0->X_0_3\n",
      "X_0_1-X_0_0\n",
      "X_0_4-X_0_1\n",
      "X_0_2->X_0_3\n",
      "X_0_5-X_0_4\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Changed value of parameter PreCrush to 1\n",
      "   Prev: 0  Min: 0  Max: 1  Default: 0\n",
      "Changed value of parameter CutPasses to 100000\n",
      "   Prev: -1  Min: -1  Max: 2000000000  Default: -1\n",
      "Changed value of parameter GomoryPasses to 100000\n",
      "   Prev: -1  Min: -1  Max: 2000000000  Default: -1\n",
      "Changed value of parameter MIPFocus to 2\n",
      "   Prev: 0  Min: 0  Max: 3  Default: 0\n",
      "Changed value of parameter ZeroHalfCuts to 2\n",
      "   Prev: -1  Min: -1  Max: 2  Default: -1\n",
      "Changed value of parameter MIPGap to 0.0\n",
      "   Prev: 0.0001  Min: 0.0  Max: inf  Default: 0.0001\n",
      "Changed value of parameter MIPGapAbs to 0.0\n",
      "   Prev: 1e-10  Min: 0.0  Max: inf  Default: 1e-10\n",
      "**********\n",
      "BN has score -4869.748020769\n",
      "**********\n",
      "X_1_0<- -1102.9867239070936\n",
      "X_1_1<-X_1_0 -729.3015978015073\n",
      "X_1_2<- -674.8893146520195\n",
      "X_1_3<-X_1_0,X_1_2 -758.296713656011\n",
      "X_1_4<-X_1_1,X_1_5 -907.4545712189956\n",
      "X_1_5<- -696.8190995333725\n",
      "**********\n",
      "bnlearn modelstring = \n",
      "[X_1_0][X_1_1|X_1_0][X_1_2][X_1_3|X_1_2:X_1_0][X_1_4|X_1_1:X_1_5][X_1_5]\n",
      "**********\n",
      "CPDAG:\n",
      "Vertices: X_1_0,X_1_1,X_1_2,X_1_3,X_1_4,X_1_5\n",
      "X_1_0-X_1_1\n",
      "X_1_0->X_1_3\n",
      "X_1_1->X_1_4\n",
      "X_1_2->X_1_3\n",
      "X_1_5->X_1_4\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Changed value of parameter PreCrush to 1\n",
      "   Prev: 0  Min: 0  Max: 1  Default: 0\n",
      "Changed value of parameter CutPasses to 100000\n",
      "   Prev: -1  Min: -1  Max: 2000000000  Default: -1\n",
      "Changed value of parameter GomoryPasses to 100000\n",
      "   Prev: -1  Min: -1  Max: 2000000000  Default: -1\n",
      "Changed value of parameter MIPFocus to 2\n",
      "   Prev: 0  Min: 0  Max: 3  Default: 0\n",
      "Changed value of parameter ZeroHalfCuts to 2\n",
      "   Prev: -1  Min: -1  Max: 2  Default: -1\n",
      "Changed value of parameter MIPGap to 0.0\n",
      "   Prev: 0.0001  Min: 0.0  Max: inf  Default: 0.0001\n",
      "Changed value of parameter MIPGapAbs to 0.0\n",
      "   Prev: 1e-10  Min: 0.0  Max: inf  Default: 1e-10\n",
      "**********\n",
      "BN has score -4951.113028658171\n",
      "**********\n",
      "X_2_0<- -1105.0242013394845\n",
      "X_2_1<-X_2_0 -788.2802839089154\n",
      "X_2_2<- -711.8062450261032\n",
      "X_2_3<-X_2_0,X_2_2 -733.2403044324546\n",
      "X_2_4<-X_2_1,X_2_5 -918.529137675413\n",
      "X_2_5<- -694.2328562758003\n",
      "**********\n",
      "bnlearn modelstring = \n",
      "[X_2_0][X_2_1|X_2_0][X_2_2][X_2_3|X_2_0:X_2_2][X_2_4|X_2_5:X_2_1][X_2_5]\n",
      "**********\n",
      "CPDAG:\n",
      "Vertices: X_2_0,X_2_1,X_2_2,X_2_3,X_2_4,X_2_5\n",
      "X_2_0-X_2_1\n",
      "X_2_0->X_2_3\n",
      "X_2_1->X_2_4\n",
      "X_2_2->X_2_3\n",
      "X_2_5->X_2_4\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Changed value of parameter PreCrush to 1\n",
      "   Prev: 0  Min: 0  Max: 1  Default: 0\n",
      "Changed value of parameter CutPasses to 100000\n",
      "   Prev: -1  Min: -1  Max: 2000000000  Default: -1\n",
      "Changed value of parameter GomoryPasses to 100000\n",
      "   Prev: -1  Min: -1  Max: 2000000000  Default: -1\n",
      "Changed value of parameter MIPFocus to 2\n",
      "   Prev: 0  Min: 0  Max: 3  Default: 0\n",
      "Changed value of parameter ZeroHalfCuts to 2\n",
      "   Prev: -1  Min: -1  Max: 2  Default: -1\n",
      "Changed value of parameter MIPGap to 0.0\n",
      "   Prev: 0.0001  Min: 0.0  Max: inf  Default: 0.0001\n",
      "Changed value of parameter MIPGapAbs to 0.0\n",
      "   Prev: 1e-10  Min: 0.0  Max: inf  Default: 1e-10\n",
      "**********\n",
      "BN has score -5077.166409760275\n",
      "**********\n",
      "X_3_0<-X_3_2,X_3_3 -828.2028500503438\n",
      "X_3_2<- -735.8306995983112\n",
      "X_3_3<- -1104.1246653983944\n",
      "X_3_1<-X_3_0 -767.7050890773535\n",
      "X_3_4<-X_3_1 -1021.3850588092841\n",
      "X_3_5<-X_3_4 -619.9180468265877\n",
      "**********\n",
      "bnlearn modelstring = \n",
      "[X_3_0|X_3_2:X_3_3][X_3_2][X_3_3][X_3_1|X_3_0][X_3_4|X_3_1][X_3_5|X_3_4]\n",
      "**********\n",
      "CPDAG:\n",
      "Vertices: X_3_0,X_3_2,X_3_3,X_3_1,X_3_4,X_3_5\n",
      "X_3_0->X_3_1\n",
      "X_3_2->X_3_0\n",
      "X_3_3->X_3_0\n",
      "X_3_1->X_3_4\n",
      "X_3_4->X_3_5\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ms = []\n",
    "for i in range(4):\n",
    "    ms.append(Gobnilp())\n",
    "    ms[i].learn(datas[i],varnames=['X_{0}_{1}'.format(i,j) for j in range(6)],\n",
    "                pruning=False, # keep all parent sets for later\n",
    "                abbrev=False) # want to see full variable names on plots"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "OK, so we have learned 4 BNs from 4 datasets. Now suppose we want to impose a preference that the 4 BNs be similar. To do this all MIP variables from the 4 separate problems need to be in the same MIP instance. We can do this by creating a new model which takes the union of the 4 sets of local scores as input. First off, we do this and then just learn a BN from this input without any preference for the BNs to be similar. (Note that this size of the plotted figure is made bigger so that we can see it well.)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Changed value of parameter PreCrush to 1\n",
      "   Prev: 0  Min: 0  Max: 1  Default: 0\n",
      "Changed value of parameter CutPasses to 100000\n",
      "   Prev: -1  Min: -1  Max: 2000000000  Default: -1\n",
      "Changed value of parameter GomoryPasses to 100000\n",
      "   Prev: -1  Min: -1  Max: 2000000000  Default: -1\n",
      "Changed value of parameter MIPFocus to 2\n",
      "   Prev: 0  Min: 0  Max: 3  Default: 0\n",
      "Changed value of parameter ZeroHalfCuts to 2\n",
      "   Prev: -1  Min: -1  Max: 2  Default: -1\n",
      "Changed value of parameter MIPGap to 0.0\n",
      "   Prev: 0.0001  Min: 0.0  Max: inf  Default: 0.0001\n",
      "Changed value of parameter MIPGapAbs to 0.0\n",
      "   Prev: 1e-10  Min: 0.0  Max: inf  Default: 1e-10\n",
      "**********\n",
      "BN has score -19834.342669613547\n",
      "**********\n",
      "X_0_0<-X_0_1 -895.5326411739161\n",
      "X_0_1<-X_0_4 -812.7914317219338\n",
      "X_0_4<-X_0_5 -1018.1456089120893\n",
      "X_0_2<- -719.4330747791437\n",
      "X_0_3<-X_0_0,X_0_2 -793.9233922658714\n",
      "X_0_5<- -696.4890615731474\n",
      "X_1_0<- -1102.9867239070936\n",
      "X_1_1<-X_1_0 -729.3015978015073\n",
      "X_1_2<- -674.8893146520195\n",
      "X_1_3<-X_1_0,X_1_2 -758.296713656011\n",
      "X_1_4<-X_1_1,X_1_5 -907.4545712189956\n",
      "X_1_5<- -696.8190995333725\n",
      "X_2_0<- -1105.0242013394845\n",
      "X_2_1<-X_2_0 -788.2802839089154\n",
      "X_2_2<- -711.8062450261032\n",
      "X_2_3<-X_2_0,X_2_2 -733.2403044324546\n",
      "X_2_4<-X_2_1,X_2_5 -918.529137675413\n",
      "X_2_5<- -694.2328562758003\n",
      "X_3_0<-X_3_2,X_3_3 -828.2028500503438\n",
      "X_3_2<- -735.8306995983112\n",
      "X_3_3<- -1104.1246653983944\n",
      "X_3_1<-X_3_0 -767.7050890773535\n",
      "X_3_4<-X_3_1 -1021.3850588092841\n",
      "X_3_5<-X_3_4 -619.9180468265877\n",
      "**********\n",
      "bnlearn modelstring = \n",
      "[X_0_0|X_0_1][X_0_1|X_0_4][X_0_4|X_0_5][X_0_2][X_0_3|X_0_0:X_0_2][X_0_5][X_1_0][X_1_1|X_1_0][X_1_2][X_1_3|X_1_2:X_1_0][X_1_4|X_1_1:X_1_5][X_1_5][X_2_0][X_2_1|X_2_0][X_2_2][X_2_3|X_2_0:X_2_2][X_2_4|X_2_5:X_2_1][X_2_5][X_3_0|X_3_2:X_3_3][X_3_2][X_3_3][X_3_1|X_3_0][X_3_4|X_3_1][X_3_5|X_3_4]\n",
      "**********\n",
      "CPDAG:\n",
      "Vertices: X_0_0,X_0_1,X_0_4,X_0_2,X_0_3,X_0_5,X_1_0,X_1_1,X_1_2,X_1_3,X_1_4,X_1_5,X_2_0,X_2_1,X_2_2,X_2_3,X_2_4,X_2_5,X_3_0,X_3_2,X_3_3,X_3_1,X_3_4,X_3_5\n",
      "X_0_0->X_0_3\n",
      "X_0_1-X_0_0\n",
      "X_0_4-X_0_1\n",
      "X_0_2->X_0_3\n",
      "X_0_5-X_0_4\n",
      "X_1_0-X_1_1\n",
      "X_1_0->X_1_3\n",
      "X_1_1->X_1_4\n",
      "X_1_2->X_1_3\n",
      "X_1_5->X_1_4\n",
      "X_2_0-X_2_1\n",
      "X_2_0->X_2_3\n",
      "X_2_1->X_2_4\n",
      "X_2_2->X_2_3\n",
      "X_2_5->X_2_4\n",
      "X_3_0->X_3_1\n",
      "X_3_2->X_3_0\n",
      "X_3_3->X_3_0\n",
      "X_3_1->X_3_4\n",
      "X_3_4->X_3_5\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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BNB99u/fj99++03pMIiIiNTv8mVg3z6lo3BpTFhdVHJyMnbs2KF0GEREROp35gwwebLSUbg0JqxEREREpGpMWImIiIhI1ZiwEhEREZGqMWElIiIiIlVjwkpEREREqsaElYiIiIhUjQkrEREREakaE1YiIiIiUjUmrERERESkakxYiYiIiEjVmLASERERkaoxYSUiIiIiVWPCSkRERESqxoSViIiIiFSNCSsRERERqRoTViIiIiJSNSasRERERKRqTFiJiIiISNWYsBIRERGRqjFhJSIiIiJVY8JKRERERKrGhJWIiIiIVI0JKxERERGpGhNWIiIiIlI1JqxEREREpGpMWImIiIhI1ZiwEhEREZGqMWElIiIiIlVjwkpEREREqsaElYiIiIhUjQkrEREREakaE1YiIiIiUjUmrERERESkakxYiYiIiEjVmLASERERkaoxYSUiIiIiVWPCSkRERESqxoSViIiIiFSNCSsRERERqZqH0gGQ/WRnZ+P8+fMAgJs3b+LixYvIyMiARqNB48aN4e7urnCEREREKiEEcPo0UFgInDsH5OQAGRnyb2FhQI0aysbnYjRCiAr/GB0dLdLS0uwYDtnSlClTkJSUBF9fXxgMBri7u8PT0xNZWVnYtm0bunTponSIRERE6pCZCTRoAGi1QHExkJcH+PkBBgPQsyfw+edKR+h0NBrNYSFEdHl/Y5cAFzJ8+HB4eHhAr9ejoKAAubm5yMrKQr169fDkk08qHR4REZF6REQAjz8OZGfL1tWiIkCvB7y8gHHjlI7O5TBhdSERERHo27cvPDzu9ATRarWYNWsWuwMQERHdKykJ8PUt+5hOBzzxhDLxuDAmrC5mxowZZRLW6tWro3///gpGREREpFJt2gCtWt257+cnk1iyOyasLqaklVWj0cDb25utq0RERMYkJQHe3vL/bF1VDBNWFzRjxgwAgK+vL1tXiYiIjGnTBmjcWP6frauK4bRWLigiIgJdu3ZF165d2bpKRERUmX/9C5gyha2rCuK0VkRERESkOE5rRUREREQOiwkrEREREakaE1YiIiIiUjUmrERERESkag6fsGZnZyMiIgKpqamlj2VlZSE8PBzr1q2rcD8hBBITExEcHIzg4GAkJCTA2AA0ADh9+jR69+6NmjVrokaNGujWrRtOnTpltbqYwp71BoCjR4+iVatW8PX1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\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "global_local_scores = {}\n",
    "for i in range(4):\n",
    "    global_local_scores.update(ms[i].local_scores)\n",
    "m = Gobnilp()\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['figure.figsize'] = [12, 6] #increase size of figure (since plot not interactive)\n",
    "m.learn(local_scores_source=global_local_scores,abbrev=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Before expressing a *preference* for the 4 BNs to be similar, let's do something easier: put in a hard constraint that each of the 4 BNs are exactly the same. We can do this most easily by requiring that the arrow variables for each learned BN are the same."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "**********\n",
      "BN has score -19835.376476073172\n",
      "**********\n",
      "X_0_0<- -1105.5341953561874\n",
      "X_0_1<-X_0_0 -748.3876961165934\n",
      "X_0_2<- -719.4330747791437\n",
      "X_0_3<-X_0_0,X_0_2 -793.9233922658714\n",
      "X_0_4<-X_0_1,X_0_5 -873.1544539394581\n",
      "X_0_5<- -696.4890615731474\n",
      "X_1_0<- -1102.9867239070936\n",
      "X_1_1<-X_1_0 -729.3015978015073\n",
      "X_1_2<- -674.8893146520195\n",
      "X_1_3<-X_1_0,X_1_2 -758.296713656011\n",
      "X_1_4<-X_1_1,X_1_5 -907.4545712189956\n",
      "X_1_5<- -696.8190995333725\n",
      "X_2_0<- -1105.0242013394845\n",
      "X_2_1<-X_2_0 -788.2802839089154\n",
      "X_2_2<- -711.8062450261032\n",
      "X_2_3<-X_2_0,X_2_2 -733.2403044324546\n",
      "X_2_4<-X_2_1,X_2_5 -918.529137675413\n",
      "X_2_5<- -694.2328562758003\n",
      "X_3_0<- -1105.395317313708\n",
      "X_3_1<-X_3_0 -767.7050890773535\n",
      "X_3_2<- -735.8306995983112\n",
      "X_3_3<-X_3_0,X_3_2 -827.1254604434616\n",
      "X_3_4<-X_3_1,X_3_5 -944.7118866313922\n",
      "X_3_5<- -696.8250995513717\n",
      "**********\n",
      "bnlearn modelstring = \n",
      "[X_0_0][X_0_1|X_0_0][X_0_2][X_0_3|X_0_0:X_0_2][X_0_4|X_0_1:X_0_5][X_0_5][X_1_0][X_1_1|X_1_0][X_1_2][X_1_3|X_1_2:X_1_0][X_1_4|X_1_1:X_1_5][X_1_5][X_2_0][X_2_1|X_2_0][X_2_2][X_2_3|X_2_0:X_2_2][X_2_4|X_2_5:X_2_1][X_2_5][X_3_0][X_3_1|X_3_0][X_3_2][X_3_3|X_3_2:X_3_0][X_3_4|X_3_5:X_3_1][X_3_5]\n",
      "**********\n",
      "CPDAG:\n",
      "Vertices: X_0_0,X_0_1,X_0_2,X_0_3,X_0_4,X_0_5,X_1_0,X_1_1,X_1_2,X_1_3,X_1_4,X_1_5,X_2_0,X_2_1,X_2_2,X_2_3,X_2_4,X_2_5,X_3_0,X_3_1,X_3_2,X_3_3,X_3_4,X_3_5\n",
      "X_0_0-X_0_1\n",
      "X_0_0->X_0_3\n",
      "X_0_1->X_0_4\n",
      "X_0_2->X_0_3\n",
      "X_0_5->X_0_4\n",
      "X_1_0-X_1_1\n",
      "X_1_0->X_1_3\n",
      "X_1_1->X_1_4\n",
      "X_1_2->X_1_3\n",
      "X_1_5->X_1_4\n",
      "X_2_0-X_2_1\n",
      "X_2_0->X_2_3\n",
      "X_2_1->X_2_4\n",
      "X_2_2->X_2_3\n",
      "X_2_5->X_2_4\n",
      "X_3_0-X_3_1\n",
      "X_3_0->X_3_3\n",
      "X_3_1->X_3_4\n",
      "X_3_2->X_3_3\n",
      "X_3_5->X_3_4\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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bt28iX+Zp9cxceJENGrUCJGRkahZsyYmFvN4UruNLU+vw6yxZfV1mDWuAM+v5e2330atWrVQpkwZVKlSBaNHj0b21SdDFcBuY8vT67Db2PL0OswcW1oppQr817x5c+ULlixZomJjY9XJkyeVUkqNGjVK9evXr9DH/Pe//1V169ZVR44cUUePHlUNGjRQ77//fpHP9d5776lly5ap5s2bq08//dSI+JdZdR0ZGRlqz549KicnR+Xm5qr58+er6OholZWV5XPXopRSANQvv/xiSO5reXIdGzZsUNOmTVMffPCBqlGjRrGfa8qUKWrx4sXqjjvuUM8//7wXqa9n5XVs37798lj64YcfVEREhDp+/LjH2a9l5bXUqFFDLV261Ju4BfLkOiZMmKA2b96ssrKy1J49e1RcXJyaNWtWkc9lt7Hl6XWYObasvA4zx5VSnl3L/v371blz55RSSp05c0Z17txZTZo0qcjnstvY8vQ67Da2PL0Os8eW2QBsUvnUo44oVpVSKikpSQ0ePFitWLFClStXrshB1qZNG/XBBx9c/vjjjz9WrVu3LvbztWvXzvBiVSnrryMnJ0d99dVXCoA6ceKEx7nzY9W1mFmsKlXy63BbunRpiQojt6FDhxr+oq+U9dehlBSJISEhasOGDR49viBWXYvZL/yeXofbww8/rB566KFif73dxpZbSa9DKXPGllXXYUVB4c21nD59Wt16663qb3/7W7EfY8ex5cl1KGW/sVWS62CxanNnz55VlSpVUjExMWry5MlFfn2ZMmXUDz/8cPnjH3/8UUVERBT7+cwqVq28jsaNG6vg4GAFQN13330eZy6IVdcCQFWuXFlVrFhR9evXTx08eNCb2Ncp6XW42a1YtfI6evXqpUJCQhQA1b17d5WTk1PCtIWz6lpq1KihKlSooGJjY9Vtt92mtm3b5kHagnl6HUoplZubq5o1a1asuw9udhtbSpX8OswcW1Zdh9njSinPriU5OVlFRkYqACo2NrZEuew0tjy9DruNLU+uw4qxZaaCilWfX7PqFh0djYSEBKSnp6N///5Ffn1aWhqioqIufxwVFYW0tLRirZE0k5XXsWPHDqSkpGDmzJm45ZZbvMqdH6uuZdWqVTh06BD27NmDKlWqoHfv3sVa21NcJb0Ou7LyOr7++mukpqZi8eLF6N69OwIM7n9o1bUkJyfj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\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def namei(u,i):\n",
    "    'get corresponding name for BN i'\n",
    "    return u[:2]+str(i)+u[3:]\n",
    "\n",
    "hard_conss = []\n",
    "for (u,v) in ms[0].arrow:\n",
    "    mipvar = m.arrow[u,v]\n",
    "    for i in range(1,4):\n",
    "        hard_conss.append(m.addConstr(mipvar == m.arrow[namei(u,i),namei(v,i)]))\n",
    "m.learn(start='MIP model',abbrev=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "OK, sure enough we get 4 identical Bayesian networks. Now let's just put a bias towards similarity. To do this we will create, for each pair of arrow variables in distinct BNs, a binary variable which takes the value 1 if the two arrow variables have different values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "**********\n",
      "BN has score -19835.335931921978\n",
      "**********\n",
      "X_0_0<-X_0_1 -895.5326411739161\n",
      "X_0_1<-X_0_4 -812.7914317219338\n",
      "X_0_4<-X_0_5 -1018.1456089120893\n",
      "X_0_2<- -719.4330747791437\n",
      "X_0_3<-X_0_0,X_0_2 -793.9233922658714\n",
      "X_0_5<- -696.4890615731474\n",
      "X_1_0<-X_1_1 -879.9605303708304\n",
      "X_1_1<- -952.3277913377706\n",
      "X_1_2<- -674.8893146520195\n",
      "X_1_3<-X_1_0,X_1_2 -758.296713656011\n",
      "X_1_4<-X_1_1,X_1_5 -907.4545712189956\n",
      "X_1_5<- -696.8190995333725\n",
      "X_2_0<-X_2_1 -907.6347422284807\n",
      "X_2_1<- -985.6697430199192\n",
      "X_2_2<- -711.8062450261032\n",
      "X_2_3<-X_2_0,X_2_2 -733.2403044324546\n",
      "X_2_4<-X_2_1,X_2_5 -918.529137675413\n",
      "X_2_5<- -694.2328562758003\n",
      "X_3_0<-X_3_1 -886.2816127837223\n",
      "X_3_1<-X_3_4 -902.9689659263199\n",
      "X_3_4<-X_3_5 -1028.3278337655192\n",
      "X_3_2<- -735.8306995983112\n",
      "X_3_3<-X_3_0,X_3_2 -827.1254604434616\n",
      "X_3_5<- -696.8250995513717\n",
      "**********\n",
      "bnlearn modelstring = \n",
      "[X_0_0|X_0_1][X_0_1|X_0_4][X_0_4|X_0_5][X_0_2][X_0_3|X_0_0:X_0_2][X_0_5][X_1_0|X_1_1][X_1_1][X_1_2][X_1_3|X_1_2:X_1_0][X_1_4|X_1_1:X_1_5][X_1_5][X_2_0|X_2_1][X_2_1][X_2_2][X_2_3|X_2_0:X_2_2][X_2_4|X_2_5:X_2_1][X_2_5][X_3_0|X_3_1][X_3_1|X_3_4][X_3_4|X_3_5][X_3_2][X_3_3|X_3_2:X_3_0][X_3_5]\n",
      "**********\n",
      "CPDAG:\n",
      "Vertices: X_0_0,X_0_1,X_0_4,X_0_2,X_0_3,X_0_5,X_1_0,X_1_1,X_1_2,X_1_3,X_1_4,X_1_5,X_2_0,X_2_1,X_2_2,X_2_3,X_2_4,X_2_5,X_3_0,X_3_1,X_3_4,X_3_2,X_3_3,X_3_5\n",
      "X_0_0->X_0_3\n",
      "X_0_1-X_0_0\n",
      "X_0_4-X_0_1\n",
      "X_0_2->X_0_3\n",
      "X_0_5-X_0_4\n",
      "X_1_0->X_1_3\n",
      "X_1_1-X_1_0\n",
      "X_1_1->X_1_4\n",
      "X_1_2->X_1_3\n",
      "X_1_5->X_1_4\n",
      "X_2_0->X_2_3\n",
      "X_2_1-X_2_0\n",
      "X_2_1->X_2_4\n",
      "X_2_2->X_2_3\n",
      "X_2_5->X_2_4\n",
      "X_3_0->X_3_3\n",
      "X_3_1-X_3_0\n",
      "X_3_4-X_3_1\n",
      "X_3_2->X_3_3\n",
      "X_3_5-X_3_4\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqsAAAFUCAYAAAADN3WgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deVxU9f4/8Negsg4ggqJmSPYVl3GppNQ2RE1bXNKbpXZLLb2SWl1uLqXlkmUuYXZb1FwyAy2vP+3ezK5Z4dKiVyypNHMLr0pXcguQYZ33749PkCgMMMycc+bwej4ePGymOfN5z8dzPK/58DmfYxEREBEREREZkY/eBRARERERVYZhlYiIiIgMi2GViIiIiAyLYZWIiIiIDIthlYiIiIgMi2GViIiIiAyrvrP/GRERIdHR0RqVQkRERER11d69e8+ISOPLn3caVqOjo5GWlua5qoiIiIiIAFgsluMVPc9pAERERERkWAyrRERERGRYDKtEREREZFgMq0RERERkWAyrRERERGRYDKtEREREZFgMq0RERERkWAyrRERERGRYDKtEREREZFgMq0RERERkWAyrRERERGRYDKtEREREZFgMq0RERERkWAyrRERERGRYDKtEREREZFgMq0RERERkWAyrRERERGRYDKtEREREZFgMq0RERERkWAyrRERERGRYDKtEREREZFgMq0RERERkWAyrJpKbm4vo6GisWbOm7LmcnBxERUVh/fr1lW4nIpgyZQrCw8MRHh6OyZMnQ0SqbM9isSAoKAhWqxVWqxWjR492y+cg43F130pNTUV8fDxCQ0MRHR1d7faee+45dOzYEfXr18fMmTNrUbn7ad0X0dHRCAgIKDvO+vTpU5vyyUNc3S8WLFiADh06IDg4GNdccw0WLFhQrfbMeIy42hdGPkZc7YtFixahVatWCAkJQfPmzZGYmIji4uIq2zNyX9SKiFT606VLFyHvsmXLFomIiJCsrCwREUlISJBBgwY53WbJkiUSExMjJ06ckJMnT0q7du1k8eLFVbYFQA4fPuyWusn4XNm3du/eLatXr5alS5dKy5Ytq93WqlWrZPPmzTJgwACZMWNGLar2DC37omXLlrJ169balEsacWW/mDdvnuzdu1eKiork4MGDEhUVJWvXrq2yLTMeI672hdGPEVf64siR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plT5eqvViuzs7LLH2dnZsFqtsFTzrlX+/v4YNmwY5s6di/T0dJfrJiIiMpuanpMv1bp1a9hsNowbN67a2zRo0AB33XUXtmzZgn/96181LZcqwbDqRllZWUhMTMSyZcuwdOlSrFu3Djt27HC6jc1mKxcy09PTYbPZatx2UVERjh07VuPtiIiIzMiVc/LliouLcfTo0Rq37ep2VDGGVTeaMGEC7r33XsTHx6NZs2aYP38+xowZg4KCgkq3efjhh7Fw4UKcOnUKmZmZSEpKwsiRI522s2vXLnzxxRcoLCyE3W7HvHnzcPr0aXTt2tXNn4iIiMg7uXJOXr58ObKysgAABw4cwEsvvYRevXo5befgwYP4+OOPYbfbUVRUhOTkZOzYsQNxcXFu/Tx1GcOqm3zwwQf44osvsGDBgrLnRo8ejRYtWuD555+vdLuxY8eif//+6NixIzp06IB77rkHY8eOddpWQUEBxo8fj/DwcFx11VXYvHkzPvroIzRv3txtn4eIiMhbuXpO/vLLL9GxY0cEBQXh7rvvxt133405c+Y4bUtEMHPmTDRp0gSNGzfGq6++ivfffx833HCD2z5PXWdxdiFPbGyspKWlaVgOEREREdVFFotlr4hcsYwCR1aJiIiIyLAYVjVgs9lgtVqv+ElJSal0m5SUlAq3ceXiKyIiIlJcOSfv3Lmzwm2sVquGldddnAZARERERLrjNAAiIiIi8joMq0RERERkWAyrRERERGRYDKtEREREZFgMq0RERERkWAyrRERERGRYDKtEREREZFgMq0RERERkWAyrRERERGRYDKtEREREZFgMq0RERERkWAyrRERERGRYDKtEREREZFgMq0RERERkWAyrRERERGRYDKtEREREZFgMq0RERERkWAyrRERERGRYDKtEREREZFgWEan8f1osvwI4rl05RERERFRHtRSRxpc/6TSsEhERERHpidMAiIiIiMiwGFaJiIiIyLAYVomIiIjIsBhWiYiIiMiwGFaJiIiIyLD+P5Izf6jv5+48AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from gurobipy import GRB\n",
    "\n",
    "def xorvar(m,x,y,obj=0.0):\n",
    "    'return binary variable which is x xor y'\n",
    "    r = m.addVar(obj=obj,vtype=GRB.BINARY)\n",
    "    #convex hull method from Achterberg's thesis (14.29)\n",
    "    m.addConstr( r - x - y <= 0) # disallow r=1,x=0,y=0\n",
    "    m.addConstr(-r + x - y <= 0) # disallow r=0,x=1,y=0\n",
    "    m.addConstr(-r - x + y <= 0) # disallow r=0,x=0,y=1\n",
    "    m.addConstr( r + x + y <= 2) # disallow r=1,x=1,y=1\n",
    "    return r\n",
    "\n",
    "# get rid of hard constraints\n",
    "m.remove(hard_conss)\n",
    "\n",
    "# add in soft constraints\n",
    "xors = []\n",
    "for i in range(4):\n",
    "    for j in range(i+1,4):\n",
    "        for (u,v) in ms[0].arrow:\n",
    "            arrowi = m.arrow[namei(u,i),namei(v,i)]\n",
    "            arrowj = m.arrow[namei(u,j),namei(v,j)]\n",
    "            xors.append(xorvar(m,arrowi,arrowj,-0.1))\n",
    "\n",
    "m.learn(start='MIP model',abbrev=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So with only a 0.1 penalty for pairs of nodes in different BNs to be connected differently, we can still get not all BNs to be the same. Let's increase this penalty to 1 and see what happens. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "**********\n",
      "BN has score -19835.376476073172\n",
      "**********\n",
      "X_0_0<- -1105.5341953561874\n",
      "X_0_1<-X_0_0 -748.3876961165934\n",
      "X_0_2<- -719.4330747791437\n",
      "X_0_3<-X_0_0,X_0_2 -793.9233922658714\n",
      "X_0_4<-X_0_1,X_0_5 -873.1544539394581\n",
      "X_0_5<- -696.4890615731474\n",
      "X_1_0<- -1102.9867239070936\n",
      "X_1_1<-X_1_0 -729.3015978015073\n",
      "X_1_2<- -674.8893146520195\n",
      "X_1_3<-X_1_0,X_1_2 -758.296713656011\n",
      "X_1_4<-X_1_1,X_1_5 -907.4545712189956\n",
      "X_1_5<- -696.8190995333725\n",
      "X_2_0<- -1105.0242013394845\n",
      "X_2_1<-X_2_0 -788.2802839089154\n",
      "X_2_2<- -711.8062450261032\n",
      "X_2_3<-X_2_0,X_2_2 -733.2403044324546\n",
      "X_2_4<-X_2_1,X_2_5 -918.529137675413\n",
      "X_2_5<- -694.2328562758003\n",
      "X_3_0<- -1105.395317313708\n",
      "X_3_1<-X_3_0 -767.7050890773535\n",
      "X_3_2<- -735.8306995983112\n",
      "X_3_3<-X_3_0,X_3_2 -827.1254604434616\n",
      "X_3_4<-X_3_1,X_3_5 -944.7118866313922\n",
      "X_3_5<- -696.8250995513717\n",
      "**********\n",
      "bnlearn modelstring = \n",
      "[X_0_0][X_0_1|X_0_0][X_0_2][X_0_3|X_0_0:X_0_2][X_0_4|X_0_1:X_0_5][X_0_5][X_1_0][X_1_1|X_1_0][X_1_2][X_1_3|X_1_2:X_1_0][X_1_4|X_1_1:X_1_5][X_1_5][X_2_0][X_2_1|X_2_0][X_2_2][X_2_3|X_2_0:X_2_2][X_2_4|X_2_5:X_2_1][X_2_5][X_3_0][X_3_1|X_3_0][X_3_2][X_3_3|X_3_2:X_3_0][X_3_4|X_3_5:X_3_1][X_3_5]\n",
      "**********\n",
      "CPDAG:\n",
      "Vertices: X_0_0,X_0_1,X_0_2,X_0_3,X_0_4,X_0_5,X_1_0,X_1_1,X_1_2,X_1_3,X_1_4,X_1_5,X_2_0,X_2_1,X_2_2,X_2_3,X_2_4,X_2_5,X_3_0,X_3_1,X_3_2,X_3_3,X_3_4,X_3_5\n",
      "X_0_0-X_0_1\n",
      "X_0_0->X_0_3\n",
      "X_0_1->X_0_4\n",
      "X_0_2->X_0_3\n",
      "X_0_5->X_0_4\n",
      "X_1_0-X_1_1\n",
      "X_1_0->X_1_3\n",
      "X_1_1->X_1_4\n",
      "X_1_2->X_1_3\n",
      "X_1_5->X_1_4\n",
      "X_2_0-X_2_1\n",
      "X_2_0->X_2_3\n",
      "X_2_1->X_2_4\n",
      "X_2_2->X_2_3\n",
      "X_2_5->X_2_4\n",
      "X_3_0-X_3_1\n",
      "X_3_0->X_3_3\n",
      "X_3_1->X_3_4\n",
      "X_3_2->X_3_3\n",
      "X_3_5->X_3_4\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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bt28iX+Zp9cxceJENGrUCJGRkahZsyYmFvN4UruNLU+vw6yxZfV1mDWuAM+v5e2330atWrVQpkwZVKlSBaNHj0b21SdDFcBuY8vT67Db2PL0OswcW1oppQr817x5c+ULlixZomJjY9XJkyeVUkqNGjVK9evXr9DH/Pe//1V169ZVR44cUUePHlUNGjRQ77//fpHP9d5776lly5ap5s2bq08//dSI+JdZdR0ZGRlqz549KicnR+Xm5qr58+er6OholZWV5XPXopRSANQvv/xiSO5reXIdGzZsUNOmTVMffPCBqlGjRrGfa8qUKWrx4sXqjjvuUM8//7wXqa9n5XVs37798lj64YcfVEREhDp+/LjH2a9l5bXUqFFDLV261Ju4BfLkOiZMmKA2b96ssrKy1J49e1RcXJyaNWtWkc9lt7Hl6XWYObasvA4zx5VSnl3L/v371blz55RSSp05c0Z17txZTZo0qcjnstvY8vQ67Da2PL0Os8eW2QBsUvnUo44oVpVSKikpSQ0ePFitWLFClStXrshB1qZNG/XBBx9c/vjjjz9WrVu3LvbztWvXzvBiVSnrryMnJ0d99dVXCoA6ceKEx7nzY9W1mFmsKlXy63BbunRpiQojt6FDhxr+oq+U9dehlBSJISEhasOGDR49viBWXYvZL/yeXofbww8/rB566KFif73dxpZbSa9DKXPGllXXYUVB4c21nD59Wt16663qb3/7W7EfY8ex5cl1KGW/sVWS62CxanNnz55VlSpVUjExMWry5MlFfn2ZMmXUDz/8cPnjH3/8UUVERBT7+cwqVq28jsaNG6vg4GAFQN13330eZy6IVdcCQFWuXFlVrFhR9evXTx08eNCb2Ncp6XW42a1YtfI6evXqpUJCQhQA1b17d5WTk1PCtIWz6lpq1KihKlSooGJjY9Vtt92mtm3b5kHagnl6HUoplZubq5o1a1asuw9udhtbSpX8OswcW1Zdh9njSinPriU5OVlFRkYqACo2NrZEuew0tjy9DruNLU+uw4qxZaaCilWfX7PqFh0djYSEBKSnp6N///5Ffn1aWhqioqIufxwVFYW0tLRirZE0k5XXsWPHDqSkpGDmzJm45ZZbvMqdH6uuZdWqVTh06BD27NmDKlWqoHfv3sVa21NcJb0Ou7LyOr7++mukpqZi8eLF6N69OwIM7n9o1bUkJyfj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\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for v in xors:\n",
    "    v.Obj = -1\n",
    "m.learn(start='MIP model',abbrev=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So with a stronger preference for similarity all 4 BNs are the same."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
